﻿using System;
using System.Collections.Generic;

namespace SGAEntidades
{
    [Serializable]
    public class HojaRutaInfo
    {
        private String _idHojaRuta;
        private String _idEmpleado;
        private EmpleadoInfo _empleado;
        private String _placa;
        private VehiculoInfo _vehiculo;
        private DateTime? _fechaInicio;
        private DateTime? _fechaFin;
        private String _idDepartamento;
        private UbigeoInfo _departamento;
        private String _idProvincia;
        private UbigeoInfo _provincia;
        private Double? _totalKm;
        private Double? _totalKmEmpresa;
        private Double? _totalKmPersonal;
        private Double? _galonesAsignados;
        private String _observaciones;
        private String _idEstado;
        private EstadoSolicitudInfo _estado;
        private String _usuarioSistema;
        private String _usuarioAprobacion;
        private String _usuarioAtencion;
        private IList<HojaRutaDetalleInfo> _detalleRuta;

        private DateTime? _fechaInicioDesde;
        private DateTime? _fechaInicioHasta;
        private DateTime? _fechaFinDesde;
        private DateTime? _fechaFinHasta;

        public HojaRutaInfo()
        {
        }

        public HojaRutaInfo(String sIdHojaRuta, String sIdEmpleado, String sPlaca, DateTime? dFechaInicioDesde, DateTime? dFechaInicioHasta,
                        DateTime? dFechaFinDesde, DateTime? dFechaFinHasta, String sIdEstado)
        {
            _idHojaRuta = sIdHojaRuta;
            _idEmpleado = sIdEmpleado;
            _placa = sPlaca;

            _fechaInicioDesde = dFechaInicioDesde;
            _fechaInicioHasta = dFechaInicioHasta;
            _fechaFinDesde = dFechaFinDesde;
            _fechaFinHasta = dFechaFinHasta;
            _idEstado = sIdEstado;
        }

        public HojaRutaInfo(String sIdHojaRuta, String sIdEmpleado, EmpleadoInfo oEmpleado, String sPlaca,
                        VehiculoInfo oVehiculo, DateTime? dFechaInicio, DateTime? dFechaFin, String sIdDepartamento, UbigeoInfo oDepartamento, String sIdProvincia, UbigeoInfo oProvincia, 
                        Double? nTotalKm, Double? nTotalKmEmpresa, Double? nTotalKmPersonal,
                        Double? nGalonesAsignados, String sObservaciones, String sIdEstado, EstadoSolicitudInfo oEstado, String sUsuarioSistema,
                        String sUsuarioAprobacion, String sUsuarioAtencion, IList<HojaRutaDetalleInfo> oDetalle, DateTime? dFechaInicioDesde, DateTime? dFechaInicioHasta, 
                        DateTime? dFechaFinDesde, DateTime? dFechaFinHasta)
        {
            _idHojaRuta = sIdHojaRuta;
            _idEmpleado = sIdEmpleado;
            _empleado = oEmpleado;
            _placa = sPlaca;
            _vehiculo = oVehiculo;
            _fechaInicio = dFechaInicio;
            _fechaFin = dFechaFin;
            _idDepartamento = sIdDepartamento;
            _departamento = oDepartamento;
            _idProvincia = sIdProvincia;
            _provincia = oProvincia;
            _totalKm = nTotalKm;
            _totalKmEmpresa = nTotalKmEmpresa;
            _totalKmPersonal = nTotalKmPersonal;
            _galonesAsignados = nGalonesAsignados;
            _observaciones = sObservaciones;
            _idEstado = sIdEstado;
            _estado = oEstado;
            _usuarioSistema = sUsuarioSistema;
            _usuarioAprobacion = sUsuarioAprobacion;
            _usuarioAtencion = sUsuarioAtencion;
            _detalleRuta = oDetalle;

            _fechaInicioDesde = dFechaInicioDesde;
            _fechaInicioHasta = dFechaInicioHasta;
            _fechaFinDesde = dFechaFinDesde;
            _fechaFinHasta = dFechaFinHasta;
        }

        public string IdHojaRuta
        {
            get { return _idHojaRuta; }
            set { _idHojaRuta = value; }
        }

        public string IdEmpleado
        {
            get { return _idEmpleado; }
            set { _idEmpleado = value; }
        }

        public EmpleadoInfo Empleado
        {
            get { return _empleado; }
            set { _empleado = value; }
        }

        public string Placa
        {
            get { return _placa; }
            set { _placa = value; }
        }

        public VehiculoInfo Vehiculo
        {
            get { return _vehiculo; }
            set { _vehiculo = value; }
        }

        public DateTime? FechaInicio
        {
            get { return _fechaInicio; }
            set { _fechaInicio = value; }
        }

        public DateTime? FechaFin
        {
            get { return _fechaFin; }
            set { _fechaFin = value; }
        }

        public double? TotalKm
        {
            get { return _totalKm; }
            set { _totalKm = value; }
        }

        public double? TotalKmEmpresa
        {
            get { return _totalKmEmpresa; }
            set { _totalKmEmpresa = value; }
        }

        public double? TotalKmPersonal
        {
            get { return _totalKmPersonal; }
            set { _totalKmPersonal = value; }
        }

        public double? GalonesAsignados
        {
            get { return _galonesAsignados; }
            set { _galonesAsignados = value; }
        }

        public string Observaciones
        {
            get { return _observaciones; }
            set { _observaciones = value; }
        }

        public string IdEstado
        {
            get { return _idEstado; }
            set { _idEstado = value; }
        }

        public EstadoSolicitudInfo Estado
        {
            get { return _estado; }
            set { _estado = value; }
        }

        public string UsuarioSistema
        {
            get { return _usuarioSistema; }
            set { _usuarioSistema = value; }
        }

        public string UsuarioAprobacion
        {
            get { return _usuarioAprobacion; }
            set { _usuarioAprobacion = value; }
        }

        public string UsuarioAtencion
        {
            get { return _usuarioAtencion; }
            set { _usuarioAtencion = value; }
        }

        public string IdDepartamento
        {
            get { return _idDepartamento; }
            set { _idDepartamento = value; }
        }

        public UbigeoInfo Departamento
        {
            get { return _departamento; }
            set { _departamento = value; }
        }

        public string IdProvincia
        {
            get { return _idProvincia; }
            set { _idProvincia = value; }
        }

        public UbigeoInfo Provincia
        {
            get { return _provincia; }
            set { _provincia = value; }
        }

        public IList<HojaRutaDetalleInfo> DetalleRuta
        {
            get { return _detalleRuta; }
            set { _detalleRuta = value; }
        }

        public DateTime? FechaInicioDesde
        {
            get { return _fechaInicioDesde; }
            set { _fechaInicioDesde = value; }
        }

        public DateTime? FechaInicioHasta
        {
            get { return _fechaInicioHasta; }
            set { _fechaInicioHasta = value; }
        }

        public DateTime? FechaFinDesde
        {
            get { return _fechaFinDesde; }
            set { _fechaFinDesde = value; }
        }

        public DateTime? FechaFinHasta
        {
            get { return _fechaFinHasta; }
            set { _fechaFinHasta = value; }
        }
    }
}
